package com.Register.service;

import com.Register.dto.*;
import com.Register.entity.User;
import com.Register.entity.WxUser;
import com.Register.result.Result;
import com.Register.vo.CheckBindVO;
import com.Register.vo.WxUserVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;


public interface UserService extends IService<User> {


    /**
     *微信登录
     * @param userAppletLoginDTO DTO
     * @return WxUser
     */
    WxUser wxLogin(UserAppletLoginDTO userAppletLoginDTO);

    WxUserVO getUserInfo() throws JsonProcessingException;


    /**
     * 注册账户接口
     * @param userRegisterDTO
     * @return
     */
    Result<String> userRegister(UserRegisterDTO userRegisterDTO);

    /**
     * 检查用户是否绑定，已绑定返回1，未绑定返回0
     * @return 返回绑定信息，已绑定返回1，未绑定返回0
     */
    CheckBindVO checkBind();

    /**
     * 检查用户账号是否已经存在
     * @param username
     * @return
     */
    WxUser checkUserExists(String username);

    /*
    微信用户更新接口
     */
    Result<String> wxUserUpdate(WxUserDTO wxUserDTO);

}
